/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package 最终版学生成绩管理系统;

import java.awt.event.*;
import java.sql.*;

import javax.swing.JOptionPane;//JOptionPane 是有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。  它是用来编写图形用户界面的一个类。

public class AddStudent extends StudentEdit implements ActionListener{

	public AddStudent(){
		super();
		b1.addActionListener(this);//想在实际应用中使用自己的类代替系统中原有
		b2.addActionListener(this);
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand()=="确定"){//同一个JFrame里可能有多个按钮的事件，为了避免冲突，给每个按钮设置不同的ActionCommand，在监听时间的时候，用这个做条件区分事件，以做不同的响应
			//计算总分
			//调用字符串转换浮点数方法
			float total=Float.parseFloat(chinese.getText())+Float.parseFloat(english.getText())+Float.parseFloat(maths.getText());
			
			try{
				//建立数据库连接
				Connection con=DataBaseCreate.getConnection();
				Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
				//添加数据到数据库
				sql.executeUpdate("insert into student(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,Total)" +
						" values('"+num.getText()+"','"+name.getText()+"','"+s.getSelectedItem()+
						"','"+grade.getSelectedItem()+"','"+clas.getSelectedItem()+"','"+major.getSelectedItem()+
						"','"+birth.getText()+"',"+chinese.getText()+","+english.getText()+","+maths.getText()+","+total+")");
				//关闭数据库连接
				sql.close();
				con.close();
				JOptionPane.showMessageDialog(null, "成功录入学生信息与成绩", "Message",
						JOptionPane.INFORMATION_MESSAGE);
				setVisible(false);
				
			}catch(java.lang.ClassNotFoundException err){
				//捕捉错误，以对话框形式显示错误信息
				JOptionPane.showMessageDialog(null, err.getMessage(), "ClassNotFoundException:",
						JOptionPane.INFORMATION_MESSAGE);
			}catch (SQLException ex){
				JOptionPane.showMessageDialog(null, ex.getMessage(), "SQLException: ", JOptionPane.INFORMATION_MESSAGE);
			}
		}
		else if(e.getActionCommand()=="取消"){
			setVisible(false);
		}
	}

}

